package com.wp.file.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;

import java.util.Calendar;
import java.util.Map;

public class JwtTool {
    //密匙
    private static final String  secret="6I2G5qWa55CG5bel5a2m6Zmi";

    /**
     * 生成token
     */
    /*生成token*/
    public static String getJWT(Map<String,String> map){
        //创建时间设置1天时间 作为后面的过期时间
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DATE,1);

        //创建JWT builder 准备构建完整token
        JWTCreator.Builder builder = JWT.create();

        //payload
        map.forEach((k,v)->{ //加载负载内容
            builder.withClaim(k,v);
        });
        //sign
        builder.withExpiresAt(calendar.getTime());//设置过期时间
        String token = builder.sign(Algorithm.HMAC512(secret));//添加最后一个加密签名
        return token;
    }

    /*验证token*///返回jwt解密
    public static DecodedJWT parseJWT(String token){
        //创建JWT验证对象 验证token 传入密匙解密
        return  JWT.require(Algorithm.HMAC512(secret)).build().verify(token);

    }

}
